﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Sale_Count
{
    public partial class FormSlCntInsr : Form
    {
        BrokerSlCnt b_SlCnt = new BrokerSlCnt(); // объявление BrokerSlCnt
        int idx;
        public FormSlCntInsr()
        {
            InitializeComponent();
        }

        private void SlCnt_Insr_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            FClose();
        }

        private void SlCnt_Insr_sBt_Insr_Click(object sender, EventArgs e) // при нажатии кнопки "Добавить"
        {
             try
            {
                Dm_Pers prs = new Dm_Pers(); // объявление Dm_Pers
                Dm_Type tp = new Dm_Type(); // объявление Dm_Type
                Dm_Count cnt = new Dm_Count(); // объявление Dm_Count

                prs = SlCnt_Insr_cBE_Prs.SelectedItem as Dm_Pers; // присвоение значений prs из SlCnt_Insr_cBE_Prs
                tp = SlCnt_Insr_cBE_Tp.SelectedItem as Dm_Type; // присвоение значений tp из SlCnt_Insr_cBE_Tp

                cnt.Customer = SlCnt_Insr_tE_Ctmr.Text; // присвоение значений cnt.Customer из SlCnt_Insr_tE_Ctmr.Text
                cnt.Date = DateTime.Now; // присвоение значений cnt.Date из SlCnt_Insr_dE_Dt.Text
                cnt.Dis_date_ready = Convert.ToDateTime(SlCnt_Insr_dE_DsDtRd.Text); // присвоение значений cnt.Dis_date_ready из SlCnt_Insr_dE_DsDtRd.Text
                cnt.Id_stat = 1;


                b_SlCnt.Insert(cnt, prs, tp); // вызов функции на добавление новой записи

                MessNotif.Informing("Запись успешно добавлена.", "Запись добавлена"); // информирование о добавление новой записи 
               

                FClose(); // закрытие формы
            }

            catch (Exception ex) // если не добавилось
            {
                MessageBox.Show(ex.ToString());
            }       
        }

        private void FormSlCntInsr_Load(object sender, EventArgs e) // заполнение ComboBox при открытие формы
        {
            SlCnt_Insr_cBE_Prs.Properties.Items.AddRange(b_SlCnt.FillComboBoxPers()); // заполнение FillComboBoxPers
            SlCnt_Insr_cBE_Tp.Properties.Items.AddRange(b_SlCnt.FillComboBoxType()); // заполнение FillComboBoxType

            int mg = Dm_User.Id_pers; // объявление переменной и присвоение ей значения из Dlv_Upd_cBE_Mg.Text

            for (int i = 0; i < SlCnt_Insr_cBE_Prs.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = SlCnt_Insr_cBE_Prs.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_SlCnt.idxPers(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx = i; // присваивание idx значения нужного индекса
                }
            }

            SlCnt_Insr_cBE_Prs.SelectedIndex = idx; // установка индекса


            SlCnt_Insr_dE_Dt.DateTime = DateTime.Now; // устанавливает текущею дату
            SlCnt_Insr_dE_DsDtRd.Properties.MinValue = SlCnt_Insr_dE_Dt.DateTime.AddDays(1); // для выбора доступна "текущая дата + 1 день"
            
            
        }

        private void FormSlCntInsr_MouseEnter(object sender, EventArgs e)
        {
            fullfill();
        }

        private void fullfill()
        {
            if (SlCnt_Insr_tE_Ctmr.Text != "" & SlCnt_Insr_dE_Dt.Text != "" & SlCnt_Insr_cBE_Prs.SelectedItem != null & SlCnt_Insr_cBE_Tp.SelectedItem != null & SlCnt_Insr_dE_DsDtRd.Text != "")
            {
                SlCnt_Insr_sBt_Insr.Enabled = true;
            }
            else
                SlCnt_Insr_sBt_Insr.Enabled = false;
        }

        private void FClose() // функция для закрытия формы
        {
            SlCnt_Insr_cBE_Prs.Properties.Items.Clear(); // отчистка ComboBoxPost
            SlCnt_Insr_cBE_Tp.Properties.Items.Clear(); // отчистка ComboBoxPost
            SlCnt_Insr_tE_Ctmr.Text = "";
            SlCnt_Insr_dE_Dt.Text = "";
            SlCnt_Insr_dE_DsDtRd.Text = "";
            this.Close();
        }

        private void FormSlCntInsr_FormClosed(object sender, FormClosedEventArgs e)
        {
            FClose();
        }
    }        
}
